Computer-aided design (CAD) software allows a user to construct and manipulate complex three-dimensional (3D) models. A number of different modeling techniques can be used to create a 3D model. One such technique is a solid modeling technique, which provides for topological 3D models where the 3D model is a collection of interconnected topological entities (e.g., vertices, edges, and faces). The topological entities have corresponding supporting geometrical entities (e.g., points, trimmed curves, and trimmed surfaces). The trimmed surfaces correspond to the topological faces bounded by the edges. CAD systems may combine solid modeling and other modeling techniques, such as parametric modeling techniques. Parametric modeling techniques can be used to define various parameters for different features and components of a model, and to define relationships between those features and components based on relationships between the various parameters.
A design engineer is a typical user of a 3D CAD system. The design engineer designs physical and aesthetic aspects of 3D models, and is skilled in 3D modeling techniques. The design engineer creates parts and may assemble the parts into a subassembly. Parts and subassemblies may be used to design an assembly.
A solid modeling system may be a feature-based 3D CAD system whereby a part is constructed using various features. Examples of features include bosses, fillets, and chamfers. A boss may be constructed by first creating a two-dimensional profile and extruding that profile into a three-dimensional object. A fillet may be created by rounding an edge in the concave or convex direction. A chamfer may result from cutting an edge or a corner at an angle. Other features commonly constructed using solid modeling systems are cuts, holes, shells, lofts, sweeps, and weld treatments (which are particularly useful in machine design).
The physical structure of a part constructed using a feature-based 3D CAD system is often dependent upon the order in which a design engineer creates the features. For example, a corner fillet takes on a different appearance depending on which of the three edges forming the corner was created first.
Generally, in a feature-based CAD system, a feature acts on all features that have been previously included in the part and has no effect on features subsequently introduced to the part. Thus, a feature-based modeling system may also be a history-based modeling system where the order in which each feature is generated is dependent on historical order. Commercially available feature-based modeling systems include the SolidWorks® 2007 software system available from SolidWorks Corporation of Concord, Mass.
Often the design engineer discovers that the feature order results in the generation of a physically incorrect part. The design engineer is then burdened with deleting and re-creating portions of the part or the entire part, re-ordering the features that constitute the part by manipulating one or more feature locations in the overall historical order of features, or in some other manner, which may be tedious, correcting the inaccurate geometry. The design engineer may be required to spend an enormous amount of time and effort during the 3D modeling process controlling the feature order and the feature order's affect on the final geometric representation of a part.
Moreover, while building a part, the order in which a design engineer should introduce features and direct the system to perform operations is not always intuitive. Many times the design engineer has invested a great deal of time designing a part before discovering that the features should be introduced in a different order. When the design engineer realizes that the feature ordering did not achieve the desired result (e.g., the desired geometric result), he or she must modify the definition of the part, for example, by rearranging the hierarchical structure of the part.
Due to the problem of introducing features in a particular order, modeling a part may require a great deal of planning and expertise. The design engineer must determine the correct ordering of features before creating the features to obtain the desired geometric result. The ordering problem is present throughout the modeling process. For example, features introduced latter in the design process may affect features that do not share common boundaries, due to parametric relationships or other interrelationships. The difficulty of the ordering problem may increase as the modeling process progresses because as a part becomes more complex, the design engineer has more difficulty determining the correct feature order. Although, a CAD system may provide a feature management tool to help a design engineer rearrange the history of features included in a part, the design engineer is generally encumbered with analyzing the feature history and re-ordering the features in the part hierarchy as necessary to ensure that the part is geometrically correct. Moreover, features are connected to each other in complex ways and real-world parts have multiple features. Having the ability to change the sequence in which features are generated does not address the problem of propagating incorrect geometry. For example, re-ordering fillets to correct the geometry of one corner may cause the geometry in a second corner positioned at the opposite end of one or more of the re-ordered fillets to become incorrect.
Time-saving advantages and enhancements to state of the art CAD systems could be achieved by providing an efficient means of recognizing interrelationships between features and allowing physical characteristics of the interrelated features or portions thereof to behave independently of other features without regard to the order in which the interrelated features were defined.